/******************************************************************************
	@Author: Manh Cuong
    @CreatDate: 12/07/2012
	@Application: rtc.h 
*******************************************************************************/
/*****************************************************************************/
/* INCLUSIONS                                                                                                                            */
/*****************************************************************************/
#include "stm32f10x.h"
/*****************************************************************************/
/* DECLARATION OF VARIABLES (Only external global variables)                 */
/*****************************************************************************/

/*****************************************************************************/
/* DEFINITION OF TYPES                                                       */
/*****************************************************************************/
typedef struct {
    uint8_t Sec; /* second */
    uint8_t Min; /* minute */
    uint8_t Hour; /* hour */
    uint8_t Day;  /* Day  */
    uint8_t Month; /* Month */
    uint16_t Year; /* Year */
}DateTimeType;
/******************************************************************************
** Function name: RTC_init()
** Description: This function shall be init  hardware rtc
** Parameter X : None
** Return value: None
** Remarks: global variables used, side effects
******************************************************************************/
void RTC_Init
(
  void 
);
/******************************************************************************
** Function name: RTC_GetTime
** Description: The function use get time in RTC module
** Parameter X :  DateTimeType* - poit to user time struct
** Return value: None
** Remarks: global variables used, side effects
******************************************************************************/
void RTC_GetTime
(
  DateTimeType* 
);
/******************************************************************************
** Function name: RTC_GetFlag
** Description: The function return value of rtc flag
** Parameter X : None
** Return value: None
** Remarks: global variables used, side effects
******************************************************************************/
uint8_t RTC_GetFlag
(
   void
);

/******************************************************************************
** Function name: RTC_ClearFlag
** Description: The function clear internal update time flag
** Parameter X : None
** Return value: None
** Remarks: global variables used, side effects
******************************************************************************/
void RTC_ClearUpdateTimeFlag
(
   void
);
/******************************************************************************
** Function name: Sec_Diff()
** Description: This function calculate raw time
** Parameter X : 
** Return value: None
** Remarks: global variables used, side effects
******************************************************************************/
unsigned long Sec_Diff( uint32_t st_day, uint32_t st_month, uint32_t st_year,
						uint32_t fs_day, uint32_t fs_month, uint32_t fs_year,
						uint32_t fs_hour, uint32_t fs_min, uint32_t fs_sec );
/******************************************************************************
** Function name: Time_Adjust()
** Description: This function adjust caliberate time
** Parameter X : unsigned long Value - time interger
** Return value: None
** Remarks: global variables used, side effects
******************************************************************************/
void Time_Adjust(unsigned long Value);


